package com.abl.lib.common.util;//package com.abl.library.common.util;
//
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.Enumeration;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.Objects;
//
//public class RequestKit {
//
//    //当前Request
//    public static HttpServletRequest request() {
//        HttpServletRequest request = null;
//        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        if (Objects.nonNull(requestAttributes)) {
//            request = requestAttributes.getRequest();
//        }
//        return request;
//    }
//
//    //获取IP
//    public static String getIpAddr() {
//        return getIpAddr(request());
//    }
//    //获取IP
//    public static String getIpAddr(HttpServletRequest request) {
//        // nginx代理获取的真实用户ip
//        String ip = request.getHeader("X-Real-IP");
//        if (StrKit.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
//            ip = request.getHeader("X-Forwarded-For");
//        }
//        if (StrKit.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
//            ip = request.getHeader("Proxy-Client-IP");
//        }
//        if (StrKit.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
//            ip = request.getHeader("WL-Proxy-Client-IP");
//        }
//        if (StrKit.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
//            ip = request.getRemoteAddr();
//        }
//        /*
//          对于通过多个代理的情况， 第一个IP为客户端真实IP,多个IP按照',
//          '分割 "***.***.***.***".length() =
//          15
//         */
//        if (ip != null && ip.length() > 15) {
//            if (ip.indexOf(",") > 0) {
//                ip = ip.substring(0, ip.indexOf(","));
//            }
//        }
//        return ip;
//    }
//
//    //获取请求头数据
//    public static Map<String, Object> requestHeaders(HttpServletRequest request) {
//        HashMap<String, Object> map = new HashMap<>();
//        Enumeration<String> headerNames = request.getHeaderNames();
//        while (headerNames.hasMoreElements()) {
//            String headerName = headerNames.nextElement();
//            String header = request.getHeader(headerName);
//            map.put(headerNames.nextElement(), header);
//        }
//        return map;
//    }
//
//}
